/*
 *   ========================================================
 *   Copyright(c) 2012 杭州龙骞科技-版权所有
 *   ========================================================
 *   本软件由杭州龙骞科技所有, 未经书面许可, 任何单位和个人不得以
 *   任何形式复制代码的部分或全部, 并以任何形式传播。
 *   公司网址
 *
 *   			http://www.hzdracom.com/
 *
 *   ========================================================
 */

package logic.util;

import android.content.Context;
import android.graphics.Bitmap;
import android.text.TextUtils;
import android.widget.ImageView;
import com.shwread.android.qysw10000152.R;
import com.squareup.picasso.Callback;
import com.squareup.picasso.MemoryPolicy;
import com.squareup.picasso.Picasso;

import java.io.File;

/**
 * 项目名称：
 * 包名称：
 * 类描述： 图片加载工具类 by Picasso
 * 创建人： 刘宾
 * 创建时间 2016/01/14 16:32.
 */
public final class PicassoUtil {
    private PicassoUtil() {
    }

    /**
     * 加载项目内的图片
     *
     * @param resId 资源id(R.drawable.xxx)
     */
    public static final void load(Context context, int resId, ImageView imageView) {
        Picasso.with(context).load(resId).config(Bitmap.Config.RGB_565).into(imageView);
    }

    /**
     * 加载SD卡图片文件
     */
    public static final void load(Context context, File file, ImageView imageView) {
        if (null != file && file.isFile() && file.exists()) {
            Picasso.with(context).load(file).config(Bitmap.Config.RGB_565).into(imageView);
        }
    }

    /**
     * 加载网络图片
     */
    public static final void load(Context context, String url, ImageView imageView) {
        if (!TextUtils.isEmpty(url)) {
            Picasso.with(context).load(url).config(Bitmap.Config.RGB_565).into(imageView);
        }
    }

    /**
     * 加载网络图片
     */
    public static final void loadOrDefault(Context context, String url, ImageView imageView) {
        if (!TextUtils.isEmpty(url)) {
            Picasso.with(context)
                .load(url)
                .placeholder(R.drawable.default_img)
                .config(Bitmap.Config.RGB_565)
                .into(imageView);
        }
    }

    /**
     * 加载网络图片
     *
     * @param defaultResId 默认的图片
     */
    public static final void load(Context context, String url, int defaultResId, ImageView imageView) {
        if (!TextUtils.isEmpty(url)) {
            Picasso.with(context).load(url).placeholder(defaultResId) //设置默认图片
                .config(Bitmap.Config.RGB_565).into(imageView);
        }
    }

    /**
     * 加载网络图片
     *
     * @param defaultResId 默认图片
     * @param failResId 加载失败的图片
     */
    public static final void load(Context context, String url, int defaultResId, int failResId,
        ImageView imageView) {
        if (!TextUtils.isEmpty(url)) {
            Picasso.with(context).load(url).placeholder(defaultResId) //设置默认图片
                .error(failResId)  //设置加载失败图片
                .config(Bitmap.Config.RGB_565).into(imageView);
        }
    }

    /**
     * 加载网络高清大图
     */
    public static final void loadBigPicture(Context context, String url, ImageView imageView) {
        if (!TextUtils.isEmpty(url)) {
            Picasso.with(context).load(url)
                // NO_CACHE是指图片加载时放弃在内存缓存中查找，
                // NO_STORE是指图片加载完不缓存在内存中。
                .memoryPolicy(MemoryPolicy.NO_CACHE, MemoryPolicy.NO_STORE).into(imageView);
        }
    }

    /**
     * 加载网络高清大图
     */
    public static final void loadBigPicture(Context context, String url, ImageView imageView,
        Callback callback) {
        if (!TextUtils.isEmpty(url)) {
            Picasso.with(context).load(url)
                // NO_CACHE是指图片加载时放弃在内存缓存中查找，
                // NO_STORE是指图片加载完不缓存在内存中。
                .memoryPolicy(MemoryPolicy.NO_CACHE, MemoryPolicy.NO_STORE)
                .config(Bitmap.Config.RGB_565)
                .tag(context.getClass().getSimpleName())
                .into(imageView, callback);
        }
    }

    /**
     * 根据tag取消图片加载
     * @param context
     * @param tag
     */
    public static final void cancelTag(Context context,Object tag) {
        Picasso.with(context).cancelTag(tag);
    }

    /**
     * 加载网络高清大图
     *
     * @param defaultResId 默认图片
     * @param failResId 加载失败的图片
     */
    public static final void loadBigPicture(Context context, String url, int defaultResId, int failResId,
        ImageView imageView) {
        if (!TextUtils.isEmpty(url)) {
            Picasso.with(context).load(url).placeholder(defaultResId) //设置默认图片
                .error(failResId)  //设置加载失败图片
                    // NO_CACHE是指图片加载时放弃在内存缓存中查找，
                    // NO_STORE是指图片加载完不缓存在内存中。
                .memoryPolicy(MemoryPolicy.NO_CACHE, MemoryPolicy.NO_STORE).into(imageView);
        }
    }
}
